The invention relates to a method and device for improving the processing time of received data in packet oriented applications in the transmission via communication networks, in particular via an IP network and a mobile communication network such as the Global System for Mobile Communication (GSM), the Universal Mobile Telecommunication System (UMTS) or the General Packet Radio Service (GPRS).
A protocol is defined as an entirety of all declarations between partner instances for the purpose of a common communication. Thus, a common binding protocol is a prerequisite for an exchange of data between two communicating network nodes. It is required that the protocols are defined universally and compatible among each other, for only on a uniform basis is it possible to link different networks with each other in sequence to communicate also beyond the limits of a system.
In terms of a modular structure the entire protocol of a communication is divided into layers. Each layer solves the tasks allocated to it by means of its own protocol. A communication between the adjacent layers is guaranteed via clearly defined interfaces. In this case, a layer n is linked to the layer n+1 directly on top thereof by rendering services to said layer, and to layer n−1 directly beneath said layer by using the services of said layer. Additionally there is a communication with layer n of the communication partner by using the services of all inferior layers. Thus, the logical data flow of protocol data units PDU is realized on respectively one protocol layer. On the receiving side the data are processed in a reverse sequence, i.e. the data are released from the lower layers to the protocol layers directly on top thereof.
The structure of the protocol stack can vary in response to the physical network and the application. The variation must, however, be within the compatible limits to guarantee the communication between different networks. The standardized protocol stack for internet applications is the TCP/IP (transmission control protocol/internet protocol) protocol stack.
It consists of four layers. The uppermost layer—the application layer—comprises application protocols. A transport protocol, for instance, the so-called TCP (transmission control protocol) is arranged directly thereunder. The internet protocol—the so-called IP forms the network layer. The two lowermost layers—the link layer and the physical layer—can be combined to form the term network oriented layers, as they are specifically defined in response to the network arranged thereunder. Said modular structure of the TCP/IP protocol stack and the communication links between the respective layers are illustrated in FIG. 2.
The transport protocol TCP offers a reliable transmission service for a byte flow. Reliability hereby refers to being free of errors, maintenance of sequences and protection against data losses and duplicates. The error correction takes place by using the so-called ARQ (automatic repeat request) method. A copy of the packet to be sent is generated on the transmitting side and preserved until the data packet sent is generated on the transmitting side and preserved until the data packet sent is positively acknowledged by the opposite side. The receiver examines the packet received and acknowledges the correct receipt by means of a positive acknowledgment and rejects the receipt of an incorrectly received packet. In this respect it has to be noted that TCP does not allow the transmission of negative acknowledgments. The repeat of an incorrectly transmitted packet is effected by means of a mechanism based on the positive acknowledgments, i.e. if there is no positive acknowledgment the transmitter concludes under certain circumstances that a packet has not been received.
The byte flow to be transmitted, which is passed from the application layer to the TCP layer, is divided into segments by the TCP for being transmitted as IP datagrams. An IP datagram designates a data packet being formatted according to the rules of the IP protocol. The property of datagrams consists in that the data exchange being realized by using datagrams is not reliable. Thus, the IP does not guarantee that a packet is indeed transmitted to a receiver. Also IP datagrams can be confused in their sequence, or can arrive at the receiver in duplicates. Within the limits of this concept it is, however, the task of TCP to detect the faulty transmission and to correct the errors that have occurred.
The IP datagrams are, moreover, transmitted according to the hierarchy principle to the link layer arranged directly underneath. Said layer receives the IP datagrams and organizes them in so-called frames. This takes place by means of a method referred to as framing, i.e. the link layer packages an IP datagram in one or more frames, wherein the frames are limited by using specific bit combinations. It is specified as to which bit combination refers to the beginning separator, the so-called initial mark, and which to the end separator, the so-called end mark, of a frame.
Apart from the framing, the link layer fulfills two additional tasks. The link layer is also responsible for the error detection. Thus, incorrectly transmitted frames are usually rejected by the receiver of the link layer. For this purpose the data packet is provided with a field for applying a so-called cyclic code, the so-called frame checking sequence FCS or the cyclic redundancy check CRC. It is the idea to interpret a data packet as a polynomial. The transmitter supplements the data packet in such a way that the receiver receives the remainder 0 by the division through a so-called generator polynomial. Thus, the error detection is realized. The link layer optionally also effects the error correction. This takes place by repeating incorrectly received packets, for instance, by using the ARQ method.
Protocols of the link layer are usually applied between physically directly adjacent network nodes. For this purpose a number of alternative protocols have been defined. As to which protocol is applied between two network nodes depends on the network by means of which the two network nodes are linked. The known point-to-point protocol, the PPP, forms an example for a protocol of the link layer. The PPP fulfills the first two jobs of the link layer—the framing and the error detection. Thus, the PPP does not perform a repeat of the incorrectly received packets. Even though there is a specific implementation mode of PPP working in a so-called, “numbered mode” RFC1663, it is usually not used.
Due to the fact that the PPP does not support a correction through the repeated packet transmission, or because the process would be inefficient at high transmission error rates, an additional protocol is applied in networks having a particularly high error rate in a data transmission. The mobile communication networks, for example, are known to be networks with high transmission error rates. The GSM (Global System for Mobile Communication) and the GPRS (General Packet Radio Service) are to be classified therein. An additional protocol—the so-called RLP (radio link protocol) is applied on the link layer of the GSM network. The RLP segments the byte flow received from the PPP layer into frames, which are usually smaller than the frames on the PPP level. The error correction is handled by the ARQ method on the basis of said frames. The functionality of ARQ requires that the frames are numbered consecutively. Therefore, each frame receives a clear continuous sequence number during the grouping. In today's implementing stadium the byte flow is segmented transparently into RLP frames and packaged. Thereby it remains unconsidered as to which kind of data, control data or actual data are concerned.
Exclusively a byte flow can be seen by the RLP layer. It can thereby occur that data from two different PPP frames are combined in one RLP frame. The RLP frame then receives the end mark of the first PPP frame and equally the initial mark of the following PPP packet. The solution for this problem is provided in EP 98 113 212.9 suggesting to examine the byte flow for separators in the sender. Thus, a difference is made between the different PPP packets when packaging the byte flow into RLP packets on the transmitting side thereby avoiding that data from two PPP packets are combined in an RLP.
The same functionality is realized in the GPRS network by means of the RLC protocol, resulting from that both protocols, the RLP and the RLC are similar to the ISO standard HDLC (high level data link control) ISO87 and accordingly have a similar structure. A difference between the protocols lies in the generation of the frames.
It is the aim of a hierarchic structure to develop a protocol architecture, wherein the protocol layers and above all the protocols are independent from one another in view of a horizontal aspect. Thus, it is obtained that different applications and different transport protocols are transmitted via the same network protocol, such as the internet protocol IP. Moreover, it allows that an IP protocol layer can function on different physical platforms. Accordingly, the IP datagrams can be transmitted via different physical networks, such as the GSM, the Internet, the GPRS.
To the user the communication on the protocol levels remains substantially invisible. He expects from the available system to support the different application services, such as transmitting and receiving e-mails, data flow or web-browsing. The data made available for the transmission frequently exceed the size of the packages which can be transmitted over a physical link. For this reason, a message is divided into smaller packets, which are consecutively arranged for a transmission. The division of the data is part of the formatting. The formatting of the data is performed on each protocol layer. On certain protocol layers, such as the RLP layer, a division of data takes place, i.e. said data are sub-divided into smaller data blocks. The data blocks have different names on the different layers, for instance, they are called datagrams on the IP protocol layer, and frames on the link layer. Moreover, the data blocks, which do not refer to a protocol layer individually, are designated by the term data packet.
The formatting of the data comprises in particular the addition of control data being characteristic for each protocol layer. In most cases the control data are appended to the beginning of a data packet in form of the so-called header and/or at the end in form of the so-called tail. The actual data are contained in the user data field. Said mechanism is explained in more detail in the following by means of a TCP/IP protocol stack.
According to FIG. 3 the user data are segmented on the application layer, and control information is added to each data packet. Said data packets are consequently forwarded to the transport layer TCP. Said layer adds its control data in form of a header. Said data are passed on to a network layer, where, for instance, the IP contains the relevant control data like routing information. In this way an IP datagram is formed, which is passed on to a link layer in the following step. The protocols of the link layer, such as for example the PPP, process the data received by adding own control information such as the separators. The data packets being generated on this level are called frames. Said frames are then transmitted via the available network. It occurs that the data packets arrive at the receiver of a certain layer in a different sequence. It can be the job of the receiver of this layer to reproduce the transmitted sequence. This is the job of, for instance, a TCP or an RLP receiver, however, not, for example, of an IP receiver.
The mechanism of packaging the data on the protocol layers is known by the term of encapsulation. The reverse function is called decapsulation and is performed on the receiving side.
In the following, the data packets, which either refer to the RLP frames or the RLC frames or also to the PPP frames each working in a numbered mode, are designated by the general term L2ARQ frame.
In form of the L2ARQ frames the user data are sent to a receiver. At the same time, the L2ARQ frames are stored in a buffer of the transmitter. This seems required in case that the packet is repeated. By means of the consecutive numbers in the L2ARQ frames it is determined by a receiver as to whether a packet has been lost during transmission. If an L2ARQ frame is lost, the repeat of said L2ARQ frame is initiated. By means of a corresponding mechanism the transmitter receives a message on the error occured, and the packet with the corresponding number is taken from the buffer and transmitted anew. If a packet is successfully transmitted to the receiver, it is removed from the buffer on the transmitting side.
The mechanism described refers to the so-called numbered mode. Said mode renders a reliable service by assuring a reliable data transmission from a transmitter to a receiver. There also is the so-called non-numbered mode. In said mode no error correction is performed by using the ARQ process. Thus the mode renders an unreliable service.
The repeat of the packets, however, entails that the packets arrived on the receiving side are provided in a sequence that does not correspond to the transmitted sequence.
In present development procedures it is the task of the link layer protocol—provided that it supports the ARQ—to bring the L2ARQ frames into the transmitted sequence. This implies that, for instance, the RLP packets received are accumulated in a buffer on the receiving side until the sequence of the RLP packets is reproduced. This means that an RLP frame is released to the layer directly on top thereof only when said frame has been received completely and when said frame is the following one in the sequence. If, however, a frame is repeated due to an error, all subsequent already received frames are kept in the buffer until the repeated frame has been received without errors. Only when the RLP packets are arranged in a corresponding sequence, which is generated by means of the sequence numbers, are they consequently passed on to the PPP layer. Prior to that the control information is deleted.
The receiver of the PPP layer performs an identification of the PPP frames. For this purpose the separators are searched. When a PPP frame has been recognized to be complete, the IP datagram received is passed on to the IP layer which then passes the TCP segment received on to the TCP protocol layer.
Due to the fact that the L2ARQ frames are temporarily stored on the link layer allowing to bring said frames into the corresponding sequence, high processing times can occur. In particular this has a negative effect on the applications being sensitive to time delays. Long time delays at any rate impair the efficient data processing. In case of the applications being sensitive to delays this may even cause the abort of a performance. Additionally this method requires a great buffer on the corresponding protocol layers, particularly, however, on the RLP protocol layer, because the packets are temporarily buffered on said level until the requested sequence has been reproduced. Long data storage times, however, result in long delay times for the data processing in a hierarchic protocol architecture.